Printer, printer system, and firmware rewriting method

ABSTRACT

Firmware stored in a printer such as an inkjet printer can be rewritten by executing a firmware rewriting process which is not dependent upon the internal processing status of the printer. A printer for executing a printing process based on print data sent from a host computer has a rewriting unit for executing a firmware rewriting process, a print unit for executing processes other than the firmware rewriting process, a rewrite command interpreting unit for detecting a rewrite command that precedes the transmission of rewrite data required for the firmware rewriting process, and a control unit for executing the firmware rewriting process with a priority over all other processes when a rewrite command is detected.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority under 35 U.S.C. §120 on, application Ser. No. 11/725,852, filed Mar. 19, 2007, which claims priority under 35 U.S.C. §119 on Japanese patent application no. 2006-073996, filed on Mar. 17, 2006. Each of the above-identified priority applications is hereby expressly incorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a printer that runs a printing process based on print data sent from a host computer, to a printer system, and to a method for rewriting printer firmware.

2. Related Art

The print mechanism, paper transportation mechanism, and other operations in a printer are controlled by firmware. The firmware is stored in the printer in ROM or flash memory, for example. Firmware is not frequently changed, but can usually be rewritten to add new functions or to correct bugs in existing functions, for example.

Multiple printers are commonly connected to and used over a LAN, and each printer must be running the same firmware in order to maintain a common operating environment across all printers. In order to rewrite the firmware in each of the plural printers connected to a network, Japanese Unexamined Patent Appl. Pub. JP-A-2001-216115 teaches broadcasting the rewrite data from a host computer to all of the printers, each of which then runs a firmware rewriting process to update the firmware based on the received rewrite data.

In order to ensure that each printer executes the same rewriting process when rewriting firmware in a plurality of printers, the rewrite operation is determined to have failed if only one printer fails to rewrite the firmware even though all other printers have successfully rewritten the firmware. This then requires all printers to repeat the firmware rewriting operation. Rewriting the firmware can fail when an internal printer error is caused by an ink end, no paper, or open cover error, for example, and the printer is in a standby state waiting for the error to be corrected, or the printer is in the middle of a print job and the rewrite data cannot be received into the receive buffer of the printer.

If the printer system has numerous printers connected to a central server such as in a retail store, ink end errors and other types of errors occur frequently and many printers are typically executing a print job at any particular time. As a result, rewriting the firmware can be rendered practically impossible if the rewriting operation must wait until all printers can run the firmware rewriting process at the same time.

SUMMARY

A printer, a printer system, and a firmware rewriting method according to the present invention enable rewriting firmware without being dependent upon the internal processing status of the printer.

According to one aspect of the invention, a printer, of a set of printers, is configured to execute one or more printing processes based on data sent from a host computer. The printer comprises a receive buffer that stores data sent from the host computer; a rewrite command interpreting unit that detects a rewrite command broadcast from the host in communication with the printer over a network; a rewriting unit that executes a firmware rewriting process; and a control unit responsive to the rewrite command interpreting unit and configured to clear the receive buffer, receive rewrite data, and direct the rewriting unit to execute the firmware rewriting process with priority over other internal processes of the printer when the rewrite command is detected.

Another aspect of the invention is a firmware rewriting method for execution in a printer. The method comprises receiving and storing data sent from a host computer; detecting a rewrite command broadcast from the host computer in communication with the printer over a network; and clearing stored data, receiving rewrite data, and executing a firmware rewriting process with priority over all other processes of the printer when the rewrite command is detected.

When a rewrite command for rewriting the firmware is detected, the firmware rewriting process is executed with priority over all other internal processes so that the firmware can be rewritten without depending on the internal processing status of the printer.

Preferably, the printer and the firmware rewriting method generate and send to the host computer a first status signal indicating a rewrite state of the printer when the rewrite command is detected. This status signal can be used to inform the user of the internal processing state of the printer so that, for example, problems arising from turning the printer power off while the firmware is being rewritten can be avoided and so that the host computer can be prevented from executing other processes on the printer while the firmware rewriting process is executing. The printer and method may also generate and send to the host computer a second status signal indicating that the firmware is being rewritten when the firmware rewriting process is executing.

A printer system according to another aspect of the invention has a set of printers, each being configured as described above. The printers are connected to a host computer over a network, and the host computer broadcasts the rewrite command to the printers.

By broadcasting the rewrite command to the printers on the network, the firmware rewriting process can be preferentially executed on all printers connected to the network and the likelihood of rewrite failures can be reduced. Furthermore, because the firmware can be rewritten on all printers en masse without waiting for frequently occurring errors to be corrected, the cost of rewriting firmware in a network environment can be reduced.

The invention thus enables rewriting firmware independently of the internal processing status of the printer because the printer gives priority to executing the firmware rewriting process over all other internal processes when the printer detects a rewrite command for rewriting the firmware.

Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an oblique view showing the inside of a printer according to a preferred embodiment of the invention when the two front printer covers are open.

FIG. 2 schematically shows a printer system according to a preferred embodiment of the invention.

FIG. 3 is a function block diagram showing the internal processes of a printer system according to a preferred embodiment of the invention.

FIG. 4 is a flow chart of the firmware rewriting process in a printer according to a preferred embodiment of the invention.

DESCRIPTION OF EMBODIMENTS

A preferred embodiment of a printer, a printer system, and a printer control method according to the present invention is described below with reference to the accompanying figures. A printer according to this embodiment of the invention is an inkjet printer that is communicably connected to a host computer over a network and prints based on control commands and print data sent from the host computer.

* Printer Appearance

FIG. 1 is an external oblique view showing the printer according to this embodiment of the invention with the two front covers open. The printer 1 according to this embodiment of the invention uses plural colors of ink to print color images on roll paper 11 and issue coupons, for example. As shown in FIG. 1, the printer 1 has a power switch 18, a roll paper cover 19, and an ink cartridge compartment cover 17 disposed in order from the left at the front of the printer case 20, which includes a front top panel 20 a and a case cover 20 b. LEDs 16 for reporting the printer 1 or host computer 50 status to the user are disposed above the power switch 18. The roll paper cover 19 and ink cartridge compartment cover 17 can swing on a hinge not shown disposed at the bottom to open and close to the front of the printer 1.

Opening the roll paper cover 19 opens the paper compartment 13 where the roll paper 11 used for printing is held, and thus enables replacing the roll paper 11. Opening the ink cartridge compartment cover 17 similarly opens the ink cartridge compartment 15 so that the ink cartridge 21 can be loaded and removed.

The ink cartridge 21 is a package containing three color ink packs for yellow, cyan, and magenta inside a cartridge case. Opening and closing the ink cartridge compartment cover 17 in the printer 1 according to this embodiment of the invention also causes the ink cartridge 21 to slide between the cartridge replacement position and the printing position inside the ink cartridge compartment 15.

* Relationship between the Host Computer and Printer

The relationship between the host computer 50 and the printer 1 in this embodiment of the invention is described next with reference to FIG. 2 and FIG. 3. FIG. 2 is a schematic diagram of a printer system having a plurality of printers connected to a host computer 50. FIG. 3 is a function block diagram showing internal processing by the host computer 50 and one printer 1 in this printer system 100.

As shown in FIG. 2 the printer system 100 has a plurality of printers 1 to 5 connected to a host computer 50 over a LAN or other network. The host computer 50 sends control commands and print data to the printers 1 to 5 to control the printer system 100. An internal CPU in each printer 1 to 5 executes firmware stored in flash ROM to execute a printing process, firmware rewriting process, and other operations. This embodiment of the invention is described using communication between the host computer 50 and printer 1 by way of example.

* Firmware Rewriting Process

As shown in FIG. 3 the main parts of the printer 1 are a data receiving unit 31, a rewrite command interpreter 32, a receive buffer 33, a command interpreter 34, a print buffer 35, a control unit 36, a print unit 37, and a rewriting unit 38.

The data receiving unit 31 receives data sent from the host computer 50. The rewrite command interpreter 32 interprets data sent from the host computer 50. To rewrite the firmware, the host computer 50 sends a rewrite command. The rewrite command is a command defined for executing the rewrite process with priority over other internal printer processes, and is issued before the rewrite data is sent.

When the rewrite command interpreter 32 detects a rewrite command, the control unit 36 causes the rewriting unit 38 to operate with priority over other processes in order to rewrite the firmware stored in flash ROM. Processes that the printer executes in addition to this firmware rewriting process include printing processes and error handling processes that take the printer off-line until an error that is detected by one of the detection units described below is corrected. More specifically, these internal error handling processes set the printer to a standby mode until the cause of the error, which could be an ink end error, no paper error, or cover open error, for example, is corrected. The control unit 36 causes the rewriting unit 38 to execute the firmware rewriting process with priority over the printing process and other internal processes that cause the printer to wait until an error is corrected.

The receive buffer 33 stores data sent from the host computer 50.

The command interpreter 34 reads data from the receive buffer 33 in FIFO sequence, and separates the control commands from the print data.

When a control command is detected, the control unit 36 controls the specific operation or printer setting based on the control command. When print data is detected, the control unit 36 controls storing a printing pattern based on the print data in the print buffer 35. When a firmware rewrite command, which is a type of control command, is detected, the control unit 36 controls wiping the print data stored in the print buffer and storing the rewrite data (firmware) following the rewrite command in the print buffer.

The print unit 37 reads print data from the print buffer 35 to print.

The printer 1 also has a status storage unit 39, an error detection unit 40, a cover detection unit 41, a roll paper detection unit 42, and an ink end detection unit 43.

The error detection unit 40 detects paper jams and other errors. The cover detection unit 41 detects if the roll paper cover 19 is open. The roll paper detection unit 42 detects the end of the roll paper. The ink end detection unit 43 detects the end of ink in the ink cartridge 21. The status storage unit 39 stores the internal printer status based on the detection signals from the detection units.

The printer 1 also has a status signal generating unit 44 and a data transmission unit 45.

The status signal generating unit 44 generates a status signal if no error is indicated when the rewrite command is received and an error (including fatal errors) occurs when the rewrite process is executed. The status signal generating unit 44 could output a status signal indicating that the printer 1 can run the rewrite process when the rewrite command is detected.

The data transmission unit 45 sends the status signal output by the status signal generating unit 44 to the host computer 50.

FIG. 4 is a flow chart describing the firmware rewriting process.

The firmware rewriting process starts when the host computer 50 sends a rewrite command for executing the rewrite process regardless of a status signal and takes precedence over other internal processes of the printer before sending the rewrite data (step S11).

If a fatal error, for example, occurs and the printer 1 then detects a rewrite command (step S21 returns Yes), the printer 1 returns a status signal indicating that the rewrite command cannot be executed to the host computer 50 (step S22). If a control command and print data is already stored in the print buffer, the printer 1 deletes the stored data and then receives the rewrite data (step S23). Step S23 is executed after the correction of the printer error when the error occurs. Therefore, a waiting step for the error recovery (error correction) is necessary between step 22 and step 23.

If a status signal indicating a fatal error is not received (step S12 returns No), the host computer 50 sends the rewrite data (step S13).

The printer 1 then receives the rewrite data (step S24) and rewrites the firmware with the received rewrite data (step S25).

When a printer error such as an ink end error, no paper error, or open cover error occurs and the printer is executing an internal process that waits for the cause of the error to be corrected, or when the printer is internally executing a printing process and the receive buffer cannot receive data for rewriting the firmware, the present invention enables executing the firmware rewriting process with priority over other internal processes and printing processes. The firmware can therefore be rewritten without depending on the internal processing status of the printer.

If the printer generates a status signal indicating that the firmware is being rewritten when the firmware rewriting process executes so that the user knows the internal processing status of the printer, problems caused by the user turning the printer power off while the firmware is being rewritten can be avoided. If the status signal is sent to the host computer, the host computer can also be prevented from sending other process commands to the printer while the firmware rewriting process is executing.

This embodiment of the invention describes rewriting the firmware based on commands sent from a host computer to printers connected to a network, but the invention can also be used to rewrite firmware in an individual printer. When applied to a printer system having a plurality of printers connected over a network, the rewrite process can be executed with priority on all networked printers and the likelihood of a rewrite failure can be reduced by broadcasting the rewrite command to all networked printers at the same time. Furthermore, because the firmware can be rewritten on all printers en masse without waiting for frequently occurring errors to be corrected, the cost of rewriting firmware in a network environment can be reduced.

The invention being thus described, it will be obvious that it may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims. 

What is claimed is:
 1. A printer, of a set of printers, configured to execute one or more printing processes based on data sent from a host computer, the printer comprising: a receive buffer that stores data sent from the host computer; a rewrite command interpreter that detects a rewrite command broadcast from the host computer in communication with the printer over a network; a rewriting module that executes a firmware rewriting process; and a controller responsive to the rewrite command interpreter and configured to clear the receive buffer of all data including commands before receiving rewrite data, receive rewrite data sent from the host computer, store the received rewrite data in the cleared receive buffer, and direct the rewriting module to execute the firmware rewriting process according to the received rewrite data with priority over other internal processes of the printer when the rewrite command is detected.
 2. The printer described in claim 1, further comprising: a status signal generator that generates and sends to the host computer a first status signal indicating a rewrite state of the printer when the rewrite command is detected.
 3. The printer described in claim 2, wherein the status signal generator generates and sends to the host computer a second status signal indicating that the firmware is being rewritten when the firmware rewriting process is executing.
 4. The printer described in claim 1, further comprising: a plurality of detectors for detecting the presence of an internal error in the printer.
 5. A firmware rewriting method for execution in printer, the method comprising: receiving and storing data sent from a host computer; detecting a rewrite command broadcast from the host computer in communication with the printer over a network; and clearing the stored data including any stored commands before receiving rewrite data, receiving rewrite data sent from the host computer, storing the received rewrite data, and executing a firmware rewriting process according to the received rewrite data with priority over other internal processes of the printer when the rewrite command is detected.
 6. The firm rewriting method described in claim 5, further comprising: generating and sending to the host computer a first status signal indicating a rewrite state of the printer when the rewrite command is detected.
 7. The firm rewriting method described in claim 6, further comprising: generating and sending to the host computer a second status signal indicating that the firmware is being rewritten when the firmware rewriting process is executing.
 8. The firm rewriting method described in claim 5, further comprising: detecting the presence of an internal error in the printer.
 9. A printer system comprising a set of printers, each being configured as described in claim
 1. 